Las librerías que se utilizarán para poder leer, cargar, mostrar e interpretar los datos son las principalmente vistas en clases, tales como: rnaturalearth (y sus variantes), sf, mapview, gstat, sp y otras más.
install.packages("rnaturalearthhires", repos = "http://packages.ropensci.org", type = "source")
tinytex::install_tinytex()
library(tinytex)
library(rnaturalearthhires)
library(rnaturalearth)
library(rnaturalearthdata)
library(mapview)
library(dplyr)
library(sf)
library(gstat)
library(sp)
Luego procedemos a cargar nuestra data, realizar una necesaria limpieza de datos e instalar una librería más para vincular los datos.
datos= read.csv(file.choose(), sep = ",", header = TRUE, encoding = "UTF-8" ,fill = TRUE)
datos <- select(datos, -currency_code)
datos <- select(datos, -local_price, -EUR, -GBP, -JPY, -CNY)
library(countrycode)
datos$continent <- countrycode::countrycode(sourcevar = datos[, "name"],
origin = "country.name",
destination = "continent")
## Warning in countrycode_convert(sourcevar = sourcevar, origin = origin, destination = dest, : Some values were not matched unambiguously: Euro area
Creamos la sección “pp120” que será nuestra base para trabajar.
pp120 <- ne_countries(scale = 'large' ,returnclass = "sf")
Ahora, creamos un nuevo dataframe con los datos combinados mediante la asociación con la columna iso_a3 y sov_a3
DatosCombinados <- merge(datos, pp120, by.x="iso_a3", by.y="sov_a3")
Luego filtramos la nueva base de datos
DataComb <- select(DatosCombinados, iso_a3, date, name.x, dollar_ex, dollar_price, USD, continent.x, gdp_md_est, income_grp, geometry)
Nos quedamos solamente con la data de America
DataComb <- DataComb[DataComb$continent.x=="Americas",]
Mapa <- st_as_sf(DataComb)
Una vez que tenemos los datos en formato sf, podemos comenzar con la correlación espacial de la data y los gráficos
pacman::p_load(tmap, sf, tidyverse, mapview, RColorBrewer, viridis,
leafpop, leaflet, leaflet.extras, mapdeck, plotly, ggmap,
ggiraph, widgetframe)
Creamos una paleta que nos va a servir para los colores
pal <- magma(n = length(unique(Mapa$name.x)), direction = -1)
Graficamos usando funcion mapview
Mapa2019 <- mapview(Mapa[Mapa$date=="2019-01-01",], zcol = "dollar_price")
Mapa2009 <- mapview(Mapa[Mapa$date=="2009-07-01",], zcol = "dollar_price")
Ahora hacemos un mapa interactivo que muestre los valores de la big mac en el año 2009 vs 2019
library(leaflet.extras2)
Mapa2009|Mapa2019
mylabel <- glue::glue("{Mapa$name.x} {Mapa$dollar_price}")
Hagamos ahora el análisis de correlación. Para ello, ocuparemos los datos de los países en el año 2019.
datos2019 <- DatosCombinados[DatosCombinados$date=="2019-01-01",]
plot(datos2019$dollar_price~datos2019$gdp_md_est)
cor.test(datos2019$dollar_price, datos2019$gdp_md_est)
##
## Pearson's product-moment correlation
##
## data: datos2019$dollar_price and datos2019$gdp_md_est
## t = -1.0212, df = 45, p-value = 0.3126
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.4195380 0.1428367
## sample estimates:
## cor
## -0.1505034
Con el análisis de correlación, el valor de pearson nos entrega que no existe correlación entre ambas variables.
modelo1 <- lm(datos2019$dollar_price~datos2019$gdp_md_est)
summary(modelo1)
##
## Call:
## lm(formula = datos2019$dollar_price ~ datos2019$gdp_md_est)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.4236 -0.7009 -0.1543 0.4608 3.2704
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 3.403e+00 1.900e-01 17.905 <2e-16 ***
## datos2019$gdp_md_est -1.043e-07 1.021e-07 -1.021 0.313
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.074 on 45 degrees of freedom
## Multiple R-squared: 0.02265, Adjusted R-squared: 0.0009324
## F-statistic: 1.043 on 1 and 45 DF, p-value: 0.3126
Como en el F-statistic el valor de p-value es > 0.05, aceptamos la hipótesis nula diciendo que nuestro modelo no es válido. El R cuadrado es muy menor, por lo que la variabilidad de la variable “Precio de la big mac” no es explicada por el precio del Pib.
modelo1$coefficients
## (Intercept) datos2019$gdp_md_est
## 3.402868e+00 -1.043113e-07
plot(datos2019$dollar_price~datos2019$gdp_md_est)